Currently gdk_screen_get_primary_monitor just returns the first monitor,
in this case but both the panel and now gnome-shell use an additional
heuristic to prefer LVDS as primary if present.
Move this heuristic to gdk_screen_get_primary_monitor to avoid duplicating
it all over the place.
The fallback heuristic is also used when no primary output is set.
https://bugzilla.gnome.org/show_bug.cgi?id=614894
XRROutputInfo *output =
XRRGetOutputInfo (dpy, resources, resources->outputs[i]);
- if (resources->outputs[i] == primary_output)
+ if (primary_output != None && resources->outputs[i] == primary_output)
{
screen_x11->primary_monitor = i;
}
continue;
}
+ /* No RandR1.3+ available or no primary set, fall back to prefer LVDS as primary if present */
+ if (g_ascii_strncasecmp (output->name, "LVDS", 4) == 0)
+ {
+ screen_x11->primary_monitor = i;
+ }
+
if (output->crtc)
{
GdkX11Monitor monitor;